﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FlorDeLiz.BusinessEntitites;
using FlorDeLiz.DataAccess;
using System.Reflection;
using FlorDeLiz.LogException;

namespace FlorDeLiz.BusinessLayer
{

    public class ContasPagarBL
    {
        #region Singleton
        private static ContasPagarBL instancia;
        public static ContasPagarBL Instancia
        {
            get
            {
                if (instancia == null)
                {
                    instancia = new ContasPagarBL();
                }
                return instancia;
            }
        }
        #endregion

        public List<ContasPagar> ObterContasPagar(int? id, string descricao, DateTime? dataInicio, DateTime? dataFim)
        {
            try
            {
                return ContasPagarDA.Instancia.ObterContasPagar(id, descricao, dataInicio, dataFim);
            }
            catch (Exception ex)
            {
                LogService.GravarLog(Log.Instancia.Loggin(DateTime.Now,
                                             ex.Message,
                                             MethodBase.GetCurrentMethod().DeclaringType.Name,
                                             MethodBase.GetCurrentMethod().Name,
                                             ex.StackTrace));
                return null;
            }
        }

        public ContasPagar GravarContasPagar(ContasPagar conta)
        {
            try
            {
                if (conta.Id == 0)
                {
                    conta = ContasPagarDA.Instancia.InserirContaPagar(conta);
                }
                else
                {
                    conta = ContasPagarDA.Instancia.AlterarContaPagar(conta);
                }
                return conta;
            }
            catch (Exception ex)
            {
                LogService.GravarLog(Log.Instancia.Loggin(DateTime.Now,
                                             ex.Message,
                                             MethodBase.GetCurrentMethod().DeclaringType.Name,
                                             MethodBase.GetCurrentMethod().Name,
                                             ex.StackTrace));
                conta.OcorreuErro = true;
                conta.Mensagem = "Falha ao Gravar Conta a Pagar!";
                return conta;
            }
        }

    }
}
